As detailed in _data_formats_*, the examples in the D3 distribution
use a variety of data structures (eg, tables, graphs) and formats
(eg, CSV, JSON).  This note examines common data structures.


Arrays

  Each CSV file encodes a rectangular array.  The first row is
  used for headings; remaining rows are (generally) used for data.

  Note:  It's possible to define subsidiary encodings (eg, a row
         for default values), but none of the examples do this.
         (JSON is generally a better choice for complex data.)

  Two examples (horizon, qq) use one-dimensional JSON arrays.


Hashes

  Two examples (choropleth, horizon) use one-dimensional hashes.


Mixed

  * Geog_1 - geographical information

    Eight examples (albers, azimuthal, bonne, cartogram, great-arc,
    mercator, node-canvas, symbol-map) use this format, as found in
    "../data/{us-*,world-*}.json".

  * Graph_1 - hash of (nodes, links) arrays of hashes

    One example (force) uses this format, as found in "miserables".

  * Hash_1 - vector of attribute hashes

    A few examples (bullet, bundle, marimekko) use this format,
    as found in "../data/{flare-imports,marimekko}.json" and
    "bullets.json".

    One example (splom) uses a slightly expanded format, as found
    in "flowers.json".
    
  * List_1 - vector of numbers

    Two examples (kde, qq) use this format, as found in
    "../data/faithful.json".

  * Tree_1 - ???

    Seven examples (bar, bubble, cluster, pack, partition, tree,
    treemap) use this format, as found in "../data/flare.json".
